'use strict';
/**
 * author：小小游 --- allen
 * date：2018.02.03
 * lastUpdateDate：2018.02.03
 * description：Promise的诞生来解决异步式嵌套回调的问题
 */
// for example：
function asyncFun (a, b, cb) {
    // 用setTimeout来模拟异步请求
    setTimeout(function () {
        cb (a + b);
    }, 200)
}

// 函数调用之后返回结果result
asyncFun (100, 200, function (result) {
    // console.log(result);
    /**
     * 这种判断的逻辑可能会很深，反复不断的嵌套，看起来真的很恶心，
     * 这就会造成逻辑上很多的断点，并不符合我们通常的逻辑思维，这
     * 个也是Promise规范产生的一个非常重要的原因，而且这样写也不优雅
     */
    // 加点判断逻辑
    if (result > 200) {
        asyncFun (result, 200, function (result) {
            if (result > 400) {
                asyncFun (result, 200, function (result) {
                    console.log('executed finished!');
                });
            }
        });
    }
});

console.log(1000);
